package cn.qayy.service;

import java.util.List;
import java.util.Set;

/**
 * 同步接口
 * 
 * @author jobs1127
 *
 */
public interface SynchronizationService {
	/***
	 * 基础库同步更新注册库
	 * @param provinces 省份集合
	 * @param citys 地市集合
	 * @param countrys 区县集合
	 */
	void basicUpdateRegister(Set<String> provinces, Set<String> citys, Set<String> countrys) throws Exception;
	/***
	 * 基础库同步更新流向
	 * @param provinces 省份集合
	 * @param citys 地市集合
	 * @param countrys 区县集合
	 */
	void basicUpdatePlans(Set<String> provinces, Set<String> citys, Set<String> countrys) throws Exception;
	/***
	 * 通过省份、地市、区县查询对应的入货乙方们
	 * @param provinces 省份集合
	 * @param citys 地市集合
	 * @param countrys 区县集合
	 */
	List<String> selectCnamesByPCC(Set<String> provinces, Set<String> citys, Set<String> countrys) throws Exception;
	/***
	 * 注册库同步更新流向 
	 * @param cnames 入货乙方们
	 */
	void registerUpdatePlans(Set<String> cnames) throws Exception;
	/***
	 * 流向同步更新 注册库
	 * 上传勘误表时、
	 * @param cnames 入货乙方们
	 */
	void plansUpdateRegister(Set<String> cnames) throws Exception;
	/***
	 * 更新销售折量
	 * 上传勘误表时、
	 * @param cnames 入货乙方们
	 */
	void updateXsCount(Set<String> cnames) throws Exception;
	
	/***
	 * 同步更新流向（不更新销售折量），调用其他的方法汇总来更新流向
	 * @param provinces
	 * @param citys
	 * @param countrys
	 */
	void syncUpdatePlansIgnoreXsCount(Set<String> provinces, Set<String> citys, Set<String> countrys) throws Exception;
	
	/***
	 * 同步更新流向（同时更新销售折量），调用其他的方法汇总来更新流向
	 * @param provinces
	 * @param citys
	 * @param countrys
	 */
	void syncUpdatePlansAndUpdateXsCount(Set<String> provinces, Set<String> citys, Set<String> countrys) throws Exception;
	void syncUpdateOther(Set<String> provinces, Set<String> citys, Set<String> countrys);
	
}
